In the context of push deliveries such as cloud fax services, a system may comprise one or more server machines connected to a number of lines for servicing requests to send and receive faxes. The number of lines may be predetermined or fixed. One issue the system may need to address is volume. When a client has many requests that need to be serviced, deliveries to other clients connected to the system may be adversely affected—for instance, faxes to other clients may be slowed downed to an unacceptable speed.
Another issue is that a client (e.g., customer A) may be slow in receiving a delivery or deliveries. This can be caused by various reasons. For example, a server on the customer A side that is supposed to be receiving the deliveries may be experiencing a problem such as a technical difficulty and therefore is receiving the deliveries slowly. Suppose the system has X number of “lines” or resources available and a limited of number of processes to handle jobs for all client machines connected thereto. If there are X number of jobs outstanding for customer A and it takes Y amount of time to process each job because customer A is receiving slowly, then for X amount of time the system would be completely booked up and everything else builds up behind it.
A skilled artisan may recognize that there can be various ways to address the issues mentioned above. For example, a resource allocation based solution may try to limit the time and/or number of jobs (incoming or outgoing) that a customer can request at any given time, given the system's resources and the number of customers connected to the system. A rule based solution may attempt to prioritize deliveries based on some customer-specific and/or job-type prioritization rules. A performance based solution may involve monitoring and detecting whether a customer is receiving slowly and taking reactive action to try to speed up a delivery or deliveries to that particular customer (e.g., by dedicating all resources to the slow customer).
These solutions have their shortcomings and drawbacks. For example, they may require reconfiguration when a new customer is added to the system and/or place unnecessarily limit(s) on the system and/or the customer(s). Consequently, there is room for innovations and improvements.